import axios from 'axios'
import { Message } from 'element-ui'
const _fetch = axios.create({
  baseURL: process.env.VUE_APP_BASE_API,
  // withCredentials:true,
  timeout: 5000
})
// 请求拦截
_fetch.interceptors.request.use(
  function (config) {
    return config
  },
  function (error) {
    return Promise.reject(error)
  }
)
// 响应拦截
_fetch.interceptors.response.use(
  function (res) {
    if (res.data.success) {
      return res.data.data
    } else {
      // 提示一下
      // 中止.then（后面代码）执行
      Message.error(res.data.message)
      return Promise.reject(new Error(res.data.message))
      // new Promise((resolve, reject) => {
      //   reject(error)
      // })
    }
  },
  function (error) {
    return Promise.reject(error)
  }
)
// 让响应拦截执行return Promise.reject时，不在浏览器出现红色警告（统一拦截了.carch）
function _ajax (xxx) {
  return new Promise((resolve, reject) => {
    _fetch(xxx)
      .then(res => {
        resolve(res)
      })
      .catch(err => {
        if (xxx.hasCatch) {
          reject(err)
        }
        // window.console.log(err)
      })
  })
}
export default _ajax

